package com.ssy.lingxi.member.merchant.service.queue;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.member.merchant.entity.MemberStoreDO;
import com.ssy.lingxi.member.merchant.model.vo.maintenance.request.MemberDeliverAddressVO;
import com.ssy.lingxi.member.merchant.model.vo.maintenance.request.MemberReceiveAddressVO;

/**
 * 内部物流服务消息队列接口
 * @author wyx
 * @version 2.0.0
 * @date 2022-02-16
 **/
public interface ILogisticsMessageQueueService {
    /**
     * 同步门店收发货地址数据到物流服务
     * @param memberStoreDO 门店信息
     * @param loginUser     登录用户信息
     * @param deliverAddress 发货地址
     * @param receiveAddress 收货地址
     * @param isCreate       是否为新增地址
     */
    void syncLogisticsAddress(MemberStoreDO memberStoreDO, UserLoginCacheDTO loginUser, MemberDeliverAddressVO deliverAddress, MemberReceiveAddressVO receiveAddress, Boolean isCreate);

    /**
     * 删除门店同步删除物流服务地址数据
     * @param memberStoreDO 门店信息
     * @param loginUser     登录用户信息
     */
    void deleteLogisticsAddress(MemberStoreDO memberStoreDO, UserLoginCacheDTO loginUser);

    /**
     * 启用/停用门店同步更新物流服务地址状态数据
     * @param memberStoreDO 门店信息
     * @param loginUser     登录用户信息
     */
    void updateLogisticsAddressStatus(MemberStoreDO memberStoreDO, UserLoginCacheDTO loginUser);
}
